用动态分配法解“传染问题”

某种传染病第一天只有一个患者,前五天为潜伏期,不发作也不会传染人
第6天开始发作,从发作到治愈需要5天时间,期间每天传染3个人
求第N天共有多少患者


解题的思路是这样的:

1、1-5天,0个人被传染,6-10天有15个人(也就是一天3)

2、第11天,被传染的人数应该是从第2天到6天被传染的人数加乘3

3、第N天,被传染的人数是第N-9到N-9+4天人数的和乘3

4、所以我们只要把(1,N-1)每天被传染的人数保存此来就可以通过公式算出第N天人数,然后从1加到N。

 

public static long SickMen(long N)

        {

            long count = 0;

            long[] M = new long[N];

 

            if (N <= 5 && N > 0)

                return 1;

 

 

            for (long i = 5; i < 10; i++)

            {

                if (i < N)

                    M[i] = 3;

            }

 

            if (N >= 10)

            {

             

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值